home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- ** **
- ** Module: dpg.h **
- ** **
- ** **
- ** **
- ** **
- ** **
- ** Copyright (C) 1995-1996 Apple Computer, Inc. All rights reserved. **
- ** **
- ** **
- *****************************************************************************/
-
- #ifndef DistanceProxyGroup_sys_h
- #define DistanceProxyGroup_sys_h
-
- #if PRAGMA_ONCE
- #pragma once
- #endif
-
- #include "QD3D.h"
- #include "QD3DGroup.h"
- #include "DPGGroup.h"
-
- /******************************************************************************
- ** **
- ** Distance Proxy Display Groups **
- ** **
- *****************************************************************************/
-
- typedef struct TQ3DistanceData {
- float distance;
- TQ3GroupPosition position;
- } TQ3DistanceData;
-
- typedef struct TQ3DistanceIOData {
- float distance;
- unsigned long index;
- } TQ3DistanceIOData;
-
- typedef struct TQ3DistanceProxyDisplayGroupPrivate {
- TQ3Point3D refPt;
- TQ3DPGFlag flag;
- float d;
- TQ3GroupPosition position;
-
- TQ3DistanceData *distTbl;
- unsigned long distTblCnt;
-
- TQ3DistanceIOData *distIOTbl;
- unsigned long distIOTblCnt;
- } TQ3DistanceProxyDisplayGroupPrivate;
-
-
- typedef struct TQ3DPGPositionPrivate {
- TQ3Boolean flag;
- float distance;
- } TQ3DPGPositionPrivate;
-
- extern void *EiGroup_GetPositionPrivate(
- TQ3XObjectClass objectClass,
- TQ3GroupObject group,
- TQ3GroupPosition gPos);
-
- extern TQ3XObjectClass EgDistanceProxyDisplayGroupClass;
-
-
- #define DPG_GETPRIVATE(x)\
- (TQ3DistanceProxyDisplayGroupPrivate *)Q3XObjectClass_GetPrivate(EgDistanceProxyDisplayGroupClass, (x))
-
- #define DPG_POSITION_GETPRIVATE(group, pos)\
- (TQ3DPGPositionPrivate *)Q3XGroup_GetPositionPrivate( (group), (pos))
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
-
-
- TQ3Status exDistanceProxyGroup_Register(
- void);
-
- TQ3GroupObject exDistanceProxyGroup_New(
- TQ3Point3D *position,
- unsigned long flags);
-
- TQ3GroupPosition exDistanceProxyGroup_AddObjectDistance(
- TQ3GroupObject group,
- TQ3Object object,
- float distance);
-
- TQ3Status exDistanceProxyGroup_SetFlag(
- TQ3GroupObject group,
- TQ3DPGFlag flag);
-
- TQ3Status exDistanceProxyGroup_GetFlag(
- TQ3GroupObject group,
- TQ3DPGFlag *flag);
-
- TQ3Status exDistanceProxyGroup_SetReferencePoint(
- TQ3GroupObject group,
- TQ3Point3D *refPt);
-
- TQ3Status exDistanceProxyGroup_GetReferencePoint(
- TQ3GroupObject group,
- TQ3Point3D *refPt);
-
- TQ3Boolean exDistanceProxyGroup_SetDistanceAtPosition(
- TQ3GroupObject group,
- TQ3GroupPosition position,
- float distance);
-
- TQ3Boolean exDistanceProxyGroup_GetDistanceAtPosition(
- TQ3GroupObject group,
- TQ3GroupPosition position,
- float *distance);
-
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
-
- #endif